package com.central.common.model;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;

/**
 * 实体父类，所有model都继承这个类，通过mybatis插件，在数据修改的时候自动修改 updateTime 字段。
 * @author ly
 * @email 664162337@qq.com
 * @date 2020/9/25 14:42
 */
@Setter
@Getter
public class SuperEntity<T extends Model<?>> extends Model<T> {

    private static final long serialVersionUID = -908558408008880685L;
    /**
     * 主键ID
     */
    @TableId
    private Long id;

    /**
     * 此记录创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 最后更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @Override
    protected Serializable pkVal() {
        return id;
    }
}
